Accord Software, Inc.

tutorial07/cube.c




/*
 * Accord Software, Inc.
 *
 * Tutorial 07 - CIDL file.
 *
 * Print the cube
 *
 *                       1 ------------- 2
 *                      /|              /|
 *                     / |             / |
 *                    /  |            /  |
 *                   /   |           /   |
 *                  /    |          /    |
 *                 4 ------------- 3     |
 *                 |     .         |     |
 *                 |     .         |     |
 *                 |     5 . . . . |. . .6
 *                y|    .          |    /
 *                 |   .           |   /
 *                 |  .            |  /z
 *                 | .             | /
 *                 |.              |/
 *                 8 --------------7
 *                         x
 *
 */

#include "cube.h"

static int
edgeprint(lp)
	struct cube *lp;
{
	int n = lp->number;
	int x = lp->x->number;
	int y = lp->y->number;
	int z = lp->z->number;

	printf(" %d: %d %d %d\n", n, x, y, z);
	return n;
}

int
addcube(lp)
	struct cube *lp;
{
	int sum = 0;

	/*
	 * find 1
	 */

	while (lp->number != 1) {
		if (lp->x->number < lp->number)
			lp = lp->x;
		else if (lp->y->number < lp->number)
			lp = lp->y;
		else if (lp->z->number < lp->number)
			lp = lp->z;
	}

	printf(" n: x y z\n");
	printf(" -  - - -\n");

	sum += edgeprint(lp);
	lp = lp->x;
	sum += edgeprint(lp);
	lp = lp->z;
	sum += edgeprint(lp);
	lp = lp->x;
	sum += edgeprint(lp);
	lp = lp->y->z;
	sum += edgeprint(lp);
	lp = lp->x;
	sum += edgeprint(lp);
	lp = lp->z;
	sum += edgeprint(lp);
	lp = lp->x;
	sum += edgeprint(lp);

	return sum;
}

[ Home | Tutorials | main.c | cube.h ]
E-Mail:webmaster@accord.com
[P-048] Updated March 14, 1996
Copyright © 1993-1996 Accord Software, Inc. All rights reserved.